package dongze.com.ckdj.dagger.component;

import dagger.Component;
import dongze.com.ckdj.activity.AddMassLossRecordActivity;
import dongze.com.ckdj.activity.CheckInOperationImageItemMultiSelectionActivity;
import dongze.com.ckdj.activity.CheckInOperationImageItemSelectionActivity;
import dongze.com.ckdj.activity.CheckInOperationItemSelectionActivity;
import dongze.com.ckdj.activity.CheckInOperationMartinTireSelectionActivity;
import dongze.com.ckdj.activity.EditMassLossRecordActivity;
import dongze.com.ckdj.activity.InspectionActivity;
import dongze.com.ckdj.activity.MassLossActivity;
import dongze.com.ckdj.activity.SelectCheckPointActivity;
import dongze.com.ckdj.dagger.DataStore;
import dongze.com.ckdj.dagger.PerVehicle;
import dongze.com.ckdj.dagger.module.VehicleModule;
import dongze.com.ckdj.data.entity.response.BrandResponse;
import dongze.com.ckdj.data.entity.response.InspectionSectionResponse;
import dongze.com.ckdj.data.entity.response.User;
import dongze.com.ckdj.data.entity.response.VehicleInformationDetail;
import dongze.com.ckdj.fragment.CheckInOperationFragment;
import dongze.com.ckdj.fragment.CheckInRecordFragment;
import dongze.com.ckdj.fragment.MassLossRecordFragment;
import dongze.com.ckdj.fragment.NamePlateFragment;
import dongze.com.ckdj.fragment.OutlineFragment;
import dongze.com.ckdj.fragment.PortInspectionFragment;
import dongze.com.ckdj.fragment.VehicleInformationFragment;
import dongze.com.ckdj.fragment.custom.MartinVehicleInformationFragment;
import dongze.com.ckdj.persistence.dao.DaoSession;

/**
 * Created by fanqwz on 2017/8/13.
 */

@PerVehicle
@Component(dependencies = SectionComponent.class, modules = VehicleModule.class)
public interface VehicleComponent {
    VehicleInformationDetail getVehicleInfo();

    User getUser();

    DaoSession getDao();

    InspectionSectionResponse getInscectionSection();

    BrandResponse getBrand();

    DataStore getDataStore();

    void inject(EditMassLossRecordActivity f);

    void inject(NamePlateFragment f);

    void inject(MassLossRecordFragment f);

    void inject(OutlineFragment f);

    void inject(CheckInOperationFragment f);

    void inject(CheckInRecordFragment f);

    void inject(InspectionActivity activity);

    void inject(MassLossActivity activity);

    void inject(AddMassLossRecordActivity activity);

    void inject(VehicleInformationFragment fragment);

    void inject(SelectCheckPointActivity activity);

    void inject(CheckInOperationItemSelectionActivity activity);

    void inject(PortInspectionFragment fragment);

    void inject(MartinVehicleInformationFragment fragment);

    void inject(CheckInOperationImageItemSelectionActivity activity);

    void inject(CheckInOperationMartinTireSelectionActivity activity);

    void inject(CheckInOperationImageItemMultiSelectionActivity activity);
}
